/**			                                                    
		   ____                    _____ _______ _____       XTARK@塔克创新
		  / __ \                  / ____|__   __|  __ \ 
		 | |  | |_ __   ___ _ __ | |       | |  | |__) |
		 | |  | | '_ \ / _ \ '_ \| |       | |  |  _  / 
		 | |__| | |_) |  __/ | | | |____   | |  | | \ \ 
		  \____/| .__/ \___|_| |_|\_____|  |_|  |_|  \_\
				| |                                     
				|_|                OpenCTR   机器人控制器
									 
  ****************************************************************************** 
  *           
  * 版权所有： XTARK@塔克创新  版权所有，盗版必究
  * 公司网站： www.xtark.cn   www.tarkbot.com
  * 淘宝店铺： https://xtark.taobao.com  
  * 塔克微信： 塔克创新（关注公众号，获取最新更新资讯）
  *      
  ******************************************************************************
  * @作  者  Musk Han@XTARK
  * @内  容  乐动LD19雷达处理
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __AX_LASER_H
#define __AX_LASER_H

/* Includes ------------------------------------------------------------------*/
#include "stm32f4xx.h"

//雷达帧相关定义
#define LS_AFRAME     12
#define LS_HEADER     0x54   //帧头
#define LS_F_LEN      47     //帧长度
#define LS_VERLEN     0x2C   //低五位是一帧数据接收到的点数，目前固定是12，高三位预留
#define LS_PNAM       12     //一帧测量点数量


//雷达点结构体定义
typedef struct
{
	uint16_t      angle;        //角度
	uint16_t   distance;     //距离
	//u8    intensity;    //光强
	
}LaserPointTypeDef;


//雷达帧结构体定义
typedef struct
{
	uint8_t            header;   //帧头0x54
	uint8_t            ver_len;  //类型长度，高三位表示帧类型，目前固定为 1，低五位表示一个包的测量点数，目前固定为12，故该字节值固定为0x2C；
	uint16_t           speed;    //雷达转速，单位度每秒
	uint16_t           start_angle;  //起始角度
	LaserPointTypeDef  data[LS_PNAM];  //数据
	uint16_t           end_angle;  //结束角度
	uint16_t           timestamp;  //时间戳
	uint8_t            crc8;  //CRC校验和
}LaserFrameTypeDef;


extern LaserPointTypeDef ax_ls_point[250];


//接口函数
void AX_LASER_Init(void);  //雷达串口初始化
uint16_t AX_LASER_GetDistance(uint16_t angle);  //获取指定角度雷达数据

#endif 

/******************* (C) 版权 2023 XTARK **************************************/
